package com.searching.core.model;

/*
* 文件类型
* */

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

public enum FileType {
    IMG("png","jpg","gif"),
    DOC("ppt","pptx","doc","docx","pdf"),
    BIN("exe","sh","jar","msi"),
    ARCHIVE("zip","rar"),
    OTHER("*");
    /*
    对应的文件类型的扩展名集合
    * */

    private Set<String> extend = new HashSet<String>();
    FileType(String... extend) {
        this.extend.addAll(Arrays.asList(extend));
    }

    public static FileType lookup(String extend) {
        for(FileType fileType : FileType.values()) {
            if(fileType.extend.contains(extend)) {
                return fileType;
            }
        }
        return FileType.OTHER;
    }

    /**
     * 根据文件类型名（String）获取文件类型对象
     * @param name
     * @return
     */

    public static FileType lookupByName(String name) {
        for(FileType fileType : FileType.values()) {
            if(fileType.name().equals(name)) {
                return fileType;
            }
        }
        return FileType.OTHER;
    }

    public static void main(String[] args) {
        System.out.println(FileType.lookup("png"));//IMG
        System.out.println(FileType.lookup("java"));//OTHER
        System.out.println(FileType.lookup("ppt"));//DOC
    }
}
